home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / PWAPG10.ZIP / 678.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-08-16  |  3KB  |  311 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     String   STRING001
  21.     String   STRING002
  22.     String   STRING003
  23.     String   STRING004
  24.     String   STRING005
  25.     String   STRING006
  26.     String   STRING007
  27.     String   STRING008
  28.     String   STRING009
  29.     String   STRING010
  30.     String   STRING011
  31.     String   STRING012
  32.     Byte     BYTE001
  33.     Byte     BYTE002
  34.     Byte     BYTE003
  35.     Byte     BYTE004
  36.     Byte     BYTE005
  37.     Byte     BYTE006
  38.     Byte     BYTE007
  39.  
  40. ;------------------------------------------------------------------------------
  41.  
  42.     Gosub LABEL009
  43.     Gosub LABEL008
  44.     Gosub LABEL001
  45.     End
  46.     :LABEL001
  47.     Gosub LABEL004
  48.     BYTE007 = 5
  49.     Gosub LABEL006
  50.     BOOLEAN001 = 0
  51.     While (BOOLEAN001 == 0) Do
  52.         STRING012 = Asc(Inkey())
  53.         If (STRING012 == 13) Then
  54.             Gosub LABEL005
  55.             Continue
  56.         Endif
  57.         If ((STRING012 == 76) || (STRING012 == 44)) Then
  58.             Gosub LABEL007
  59.             Dec BYTE007
  60.             If (BYTE007 < 1) BYTE007 = 5
  61.             Gosub LABEL006
  62.             Continue
  63.         Endif
  64.         If ((STRING012 == 82) || (STRING012 == 46)) Then
  65.             Gosub LABEL007
  66.             Inc BYTE007
  67.             If (BYTE007 > 5) BYTE007 = 1
  68.             Gosub LABEL006
  69.             Continue
  70.         Endif
  71.         If ((STRING012 == 72) || (STRING012 == 104)) Then
  72.             Gosub LABEL007
  73.             BYTE007 = 1
  74.             Gosub LABEL003
  75.             Continue
  76.         Endif
  77.         If ((STRING012 == 68) || (STRING012 == 100)) Then
  78.             Gosub LABEL007
  79.             BYTE007 = 2
  80.             Gosub LABEL006
  81.             BOOLEAN001 = 1
  82.             Continue
  83.         Endif
  84.         If ((STRING012 == 85) || (STRING012 == 117)) Then
  85.             Gosub LABEL007
  86.             BYTE007 = 3
  87.             Gosub LABEL006
  88.             BOOLEAN001 = 1
  89.             Continue
  90.         Endif
  91.         If ((STRING012 == 80) || (STRING012 == 112)) Then
  92.             Gosub LABEL007
  93.             BYTE007 = 4
  94.             Gosub LABEL006
  95.             Delay 5
  96.             If (Exist(STRING011)) Then
  97.                 Call STRING011
  98.                 Goto LABEL002
  99.             Endif
  100.             Newline
  101.             :LABEL002
  102.             Gosub LABEL004
  103.             Gosub LABEL006
  104.             Continue
  105.         Endif
  106.         If ((STRING012 == 81) || (STRING012 == 113)) Then
  107.             Gosub LABEL007
  108.             BYTE007 = 5
  109.             Gosub LABEL006
  110.             BOOLEAN001 = 1
  111.             Continue
  112.         Endif
  113.         If (STRING012 == 27) Then
  114.             Gosub LABEL007
  115.             BYTE007 = 5
  116.             Gosub LABEL006
  117.             BOOLEAN001 = 1
  118.         Endif
  119.     EndWhile
  120.     Gosub LABEL005
  121.     Return
  122.     :LABEL003
  123.     Newline
  124.     If (Exist(PPEPath() + "678HELP.PCB")) Then
  125.         DispFile PPEPath() + "678HELP.PCB", 0
  126.     Else
  127.         PrintLn "@X0CSorry, no help is available."
  128.     Endif
  129.     Gosub LABEL004
  130.     Gosub LABEL006
  131.     Return
  132.     :LABEL004
  133.     Print ReadLine(PPEPath() + "678.CFG", 1)
  134.     BYTE001 = GetY()
  135.     BYTE002 = GetX()
  136.     Print STRING001 + "  "
  137.     BYTE003 = GetX()
  138.     Print STRING002 + "  "
  139.     BYTE004 = GetX()
  140.     Print STRING003 + "  "
  141.     BYTE005 = GetX()
  142.     Print STRING004 + "  "
  143.     BYTE006 = GetX()
  144.     Print STRING005
  145.     Return
  146.     :LABEL005
  147.     Select Case (BYTE007)
  148.         Case 1
  149.             Gosub LABEL003
  150.         Case 2
  151.             Newline
  152.             KbdStuff "D"
  153.             End
  154.         Case 3
  155.             Newline
  156.             KbdStuff "U"
  157.             End
  158.         Case 4
  159.             If (Exist(STRING011)) Then
  160.                 Call STRING011
  161.             Else
  162.                 Newline
  163.             Endif
  164.             Gosub LABEL004
  165.             Gosub LABEL006
  166.         Case 5
  167.             Newline
  168.             KbdStuff Chr(13)
  169.             End
  170.     End Select
  171.     Return
  172.     :LABEL006
  173.     Select Case (BYTE007)
  174.         Case 1
  175.             Print Chr(13)
  176.             Forward BYTE002 - 1
  177.             Print STRING006
  178.         Case 2
  179.             Print Chr(13)
  180.             Forward BYTE003 - 1
  181.             Print STRING007
  182.         Case 3
  183.             Print Chr(13)
  184.             Forward BYTE004 - 1
  185.             Print STRING008
  186.         Case 4
  187.             Print Chr(13)
  188.             Forward BYTE005 - 1
  189.             Print STRING009
  190.         Case 5
  191.             Print Chr(13)
  192.             Forward BYTE006 - 1
  193.             Print STRING010
  194.     End Select
  195.     Return
  196.     :LABEL007
  197.     Select Case (BYTE007)
  198.         Case 1
  199.             Print Chr(13)
  200.             Forward BYTE002 - 1
  201.             Print STRING001
  202.         Case 2
  203.             Print Chr(13)
  204.             Forward BYTE003 - 1
  205.             Print STRING002
  206.         Case 3
  207.             Print Chr(13)
  208.             Forward BYTE004 - 1
  209.             Print STRING003
  210.         Case 4
  211.             Print Chr(13)
  212.             Forward BYTE005 - 1
  213.             Print STRING004
  214.         Case 5
  215.             Print Chr(13)
  216.             Forward BYTE006 - 1
  217.             Print STRING005
  218.     End Select
  219.     Return
  220.     :LABEL008
  221.     STRING011 = ReadLine(PPEPath() + "678.CFG", 2)
  222.     STRING001 = ReadLine(PPEPath() + "678.CFG", 3)
  223.     STRING002 = ReadLine(PPEPath() + "678.CFG", 4)
  224.     STRING003 = ReadLine(PPEPath() + "678.CFG", 5)
  225.     STRING004 = ReadLine(PPEPath() + "678.CFG", 6)
  226.     STRING005 = ReadLine(PPEPath() + "678.CFG", 7)
  227.     STRING006 = ReadLine(PPEPath() + "678.CFG", 8)
  228.     STRING007 = ReadLine(PPEPath() + "678.CFG", 9)
  229.     STRING008 = ReadLine(PPEPath() + "678.CFG", 10)
  230.     STRING009 = ReadLine(PPEPath() + "678.CFG", 11)
  231.     STRING010 = ReadLine(PPEPath() + "678.CFG", 12)
  232.     Return
  233.     :LABEL009
  234.     BYTE007 = TokCount()
  235.     If (BYTE007) Then
  236.         STRING012 = ""
  237.         While (BYTE007 > 0) Do
  238.             STRING012 = STRING012 + GetToken() + " "
  239.             Dec BYTE007
  240.         EndWhile
  241.         KbdStuff STRING012
  242.         End
  243.     Endif
  244.     Return
  245.  
  246. ;------------------------------------------------------------------------------
  247. ;
  248. ; Usage report (before postprocessing)
  249. ;
  250. ; ■ Statements used :
  251. ;
  252. ;    5       End
  253. ;    55      Goto 
  254. ;    35      Let 
  255. ;    26      Print 
  256. ;    1       PrintLn 
  257. ;    32      If 
  258. ;    1       DispFile 
  259. ;    30      Gosub 
  260. ;    8       Return
  261. ;    1       Delay 
  262. ;    1       Inc 
  263. ;    2       Dec 
  264. ;    6       Newline
  265. ;    4       KbdStuff 
  266. ;    2       Call 
  267. ;    10      Forward 
  268. ;
  269. ;
  270. ; ■ Functions used :
  271. ;
  272. ;    20      +
  273. ;    10      -
  274. ;    32      ==
  275. ;    1       <
  276. ;    2       >
  277. ;    30      !
  278. ;    7       ||
  279. ;    11      Chr()
  280. ;    1       Asc()
  281. ;    1       Inkey()
  282. ;    14      PPEPath()
  283. ;    12      ReadLine()
  284. ;    1       GetToken()
  285. ;    3       Exist()
  286. ;    5       GetX()
  287. ;    1       GetY()
  288. ;    1       TokCount()
  289. ;
  290. ;------------------------------------------------------------------------------
  291. ;
  292. ; Analysis flags : C
  293. ;
  294. ; C - Call child PPE ■ 3
  295. ;     This is usually normal, but may be a tricky way to launch some
  296. ;     sysop-only commands.
  297. ;     ■ Search for : CALL
  298. ;
  299. ;------------------------------------------------------------------------------
  300. ;
  301. ; Postprocessing report
  302. ;
  303. ;    0       For/Next
  304. ;    2       While/EndWhile
  305. ;    13      If/Then or If/Then/Else
  306. ;    3       Select Case
  307. ;
  308. ;------------------------------------------------------------------------------
  309. ;                 AEGiS Corp - Break the routines, code against the machines!
  310. ;------------------------------------------------------------------------------
  311.